J'ai un module tiers ("handsontable"), dont la définition est obsolète dans le dossier du module ("/ node_modules/handsontable/handsontable.d.ts "), mais correct" index.d.ts "dans/node_modules/@ types dossier. Ainsi, la structure est la suivante:Conflit de typescript entre "module/index.d.ts" et "@ types/module/index.d.ts"
/node_modules
/@types
/handsontable
/index.d.ts (LATEST)
/handsontable
/handsontable.d.ts (OUTDATED)
/src/app.ts
J'utilise des modules ES6 et je ne veux pas exposer handsontable au global, alors quand j'écris app.ts:
import ht from 'handsontable'
let options: ht.Options
Il montre me erreur, car ht.Options
n'existe pas dans /node_modules/handsontable/handsontable.d.ts
, alors qu'il existe seulement dans /node_modules/@types/handsontable/index.d.ts
y at-il de toute façon de forcer tapuscrit à charger des informations de type de /node_modules/@type/module
pendant import m from "module"
?
Voici mon tsconfig.json:
{
"exclude": [
"node_modules","build","dist", "typings","types"
],
"include": [
"./src/**/*.ts"
],
"typeAcquisition": {
"enable": true
// "exclude": [ //tried that too
// "handsontable"
// ]
},
"compileOnSave": true,
"compilerOptions": {
"baseUrl": "node_modules",
"paths": {
"src/*":["../src/*"],
"app/*":["../src/*"],
"*":["../src/*", "./node_modules"]
},
"target": "es2016",
//"module": "es6", //es6 is not compatible with webpack.config.ts
"moduleResolution": "node",
"allowSyntheticDefaultImports": true,
"sourceMap": true,
"allowJs": true,
"outDir": "./build",
"experimentalDecorators": true,
"lib": [
"dom",
"es6"
]
}
}
version Tapuscrit: 2.4.2
qu'avez-vous dans votre 'tsconfig' fichier? – Nayish
juste mis à jour la question avec l'info –
Tout d'abord, vous devez supprimer les types des fichiers exclus. Ensuite, vous devez ajouter le type de handsontable et enfin vous devez exclure le type problamatic. – Nayish