Typescript 键入如何忽略';类型';只能在.ts文件错误中使用
我有一个很大的项目(大约700多个文件),是用JavaScript和flow编写的。我想把它迁移到TypeScript。我的目标是保持当前文件完好无损,我想用TypeScript编写新函数。我的问题是它向我抛出了一个错误Typescript 键入如何忽略';类型';只能在.ts文件错误中使用,typescript,Typescript,我有一个很大的项目(大约700多个文件),是用JavaScript和flow编写的。我想把它迁移到TypeScript。我的目标是保持当前文件完好无损,我想用TypeScript编写新函数。我的问题是它向我抛出了一个错误“类型”只能在.ts文件中使用。是否可以抑制此错误?我绝对不想重写解决方案中的每个文件 我的IDE是visual studio enterprise 2019 tsconfig { "compilerOptions": { "target": "es5", "li
“类型”只能在.ts文件中使用
。是否可以抑制此错误?我绝对不想重写解决方案中的每个文件
我的IDE是visual studio enterprise 2019
tsconfig
{
"compilerOptions": {
"target": "es5",
"lib": [
"dom",
"dom.iterable",
"esnext"
],
"allowJs": true,
"checkJs": false,
"skipLibCheck": true,
"noEmitOnError": true,
"esModuleInterop": true,
"allowSyntheticDefaultImports": true,
"strict": false,
"forceConsistentCasingInFileNames": true,
"module": "esnext",
"moduleResolution": "node",
"resolveJsonModule": true,
"isolatedModules": true,
"noEmit": true,
"jsx": "preserve"
},
"include": [
"src"
]}
您不能在JavaScript文件中使用类型,typescript不会对js文件执行类型擦除,因此即使您抑制了错误,您也会得到无效的js 如果要将扩展名迁移到
ts
,则编译器设置允许大多数js都是有效的ts。然后,您可以在新的ts文件上调用编译器以获得相应的js(因为其中大多数还没有类型,所以输出应与输入相同,与原始js文件相同)
如果希望保留js文件,可以使用JSDoc注释而不是类型注释。参见示例。这将以更详细的语法为您提供显式类型注释的大部分好处。稍后,当您想要移动到ts时,有一个快速修复方法可以将jsdoc类型移动到ts注释(至少在VSCode中有一个注释,我希望它也在VS中出现) 谢谢你的确认。这正是我所担心的,因为将几乎每个文件都更改为JSDoc文档对我来说是不可能的。您可以使用
flow-remove-types-src/-d-types-source/
剥离流类型并在那里生成TS文件表单