Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Typescript 键入如何忽略';类型';只能在.ts文件错误中使用_Typescript - Fatal编程技术网

Typescript 键入如何忽略';类型';只能在.ts文件错误中使用

Typescript 键入如何忽略';类型';只能在.ts文件错误中使用,typescript,Typescript,我有一个很大的项目(大约700多个文件),是用JavaScript和flow编写的。我想把它迁移到TypeScript。我的目标是保持当前文件完好无损,我想用TypeScript编写新函数。我的问题是它向我抛出了一个错误“类型”只能在.ts文件中使用。是否可以抑制此错误?我绝对不想重写解决方案中的每个文件 我的IDE是visual studio enterprise 2019 tsconfig { "compilerOptions": { "target": "es5", "li

我有一个很大的项目(大约700多个文件),是用JavaScript和flow编写的。我想把它迁移到TypeScript。我的目标是保持当前文件完好无损,我想用TypeScript编写新函数。我的问题是它向我抛出了一个错误
“类型”只能在.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文件表单