在打字稿中找不到名称“省略”

Bye*_*oon 8 typescript

背景

我正在上创建我的自定义index.d.ts文件src/@types/index.d.ts。我需要像下面这样合并我的类型。

// src/@types/index.d.ts
declare namespace Admin {
  interface InitialStateFromDB {
    teamSettings: {
      teamPasswords: TeamPassword[],
      teamCount: number
    },
    adminPasswords: string,
    postInfos: PostInfo[] | undefined
  }
  interface InitialState extends Omit<InitialStateFromDB, 'adminPasswords'> {
    adminPasswords: AdminPassword
  }
}
Run Code Online (Sandbox Code Playgroud)

问题

我得到了错误:Cannot find name 'Omit'.ts(2304)VSCode Intellisense给出了。但是编译效果很好。

所以,我做了省略类型type Omit<T, K extends keyof T> = Pick<T, Exclude<keyof T, K>>(在这里复制)

编译后,我又遇到了一个错误: 'Omit' was also declared here.

在这种情况下我该怎么办?只是忽略IntelliSense的错误?

Mat*_*ner 22

Omit在TS 3.5.1中最近才添加的,因此您可能在工作区中使用了不支持它的旧版TS。

请遵循以下说明,确保VS Code工作区使用的是与您正在编译的TypeScript版本相同的TypeScript 。只需打开一个TS文件,Select TypeScript Version在VS Code中运行命令,然后选择使用您的工作区版本的TypeScript(应为3.5.1)


adn*_*2nd 9

尝试使用 "skipLibCheck": true 作为 tsconfig.json 文件中的 compilerOptions 之一