TypeScript“记录”未定义

Posted

技术标签:

【中文标题】TypeScript“记录”未定义【英文标题】:TypeScript 'Record' is not defined 【发布时间】:2021-06-14 17:37:56 【问题描述】:

我正在使用 TypeScript 编写一个 React-Native 项目,到目前为止一切正常,但以下部分会引发错误:

export interface Country 
    name: string;
    cities: Record<string, string>;

错误是:

3:13  error  'Record' is not defined  no-undef

我的打字稿使用工作区版本而不是 VS Code 的版本。 另外,当我 cmd+单击Record 时,我可以转到它的定义,它在文件lib.es5.d.ts 中:

type Record<K extends keyof any, T> = 
    [P in K]: T;
;

所以,Record 显然是在 node_modules 下定义和找到的,但是当我运行 linter (@typescript-eslint) 时,我无法修复此错误

我的.vscode/settings.json 的内容如下所示:

"typescript.tsdk": "node_modules/typescript/lib"

我还没有找到任何解决方案,请你帮忙吗?

打字稿版本:“4.1.4”,

【问题讨论】:

它可能在编译器标志中缺少 es5(或兼容的)lib (tsconfig.json compilierOptions => lib) 【参考方案1】:

此错误可能与eslint 配置有关。

通过将 eslint 添加到 eslintrc 文件的 extends 部分来扩展 'plugin:@typescript-eslint/recommended'

module.exports = 
    ...
    extends: [
        ...
        'plugin:@typescript-eslint/recommended'
    ]
    ....
;

并重新加载 vscode 的 TypeScript Server。你可以通过在 vscode 命令面板中输入Restart TS Server 来实现。

【讨论】:

以上是关于TypeScript“记录”未定义的主要内容,如果未能解决你的问题,请参考以下文章

chrome 未定义 - Mocha 和 Typescript

如何在 Typescript 中检查未定义

无法读取未定义的属性“insertOnMatch”-TypeScript

为啥“”.abcd 返回未定义的值而不是在 Javascript 中抛出未定义的错误(但 Typescript 抛出警告)

错误类型错误:无法读取未定义的属性“切片”---Typescript

如何修复 Typescript 错误“对象可能是‘未定义’”