TS接口上“ any”的简写

时间:2018-07-17 03:25:59

标签: typescript tsc

我不小心弄到了,它似乎可以工作:

export interface ITestBlockOpts {
  desc: string,
  title: string,
  opts: Object,
  suman: ISuman,
  gracefulExit,
  handleBeforesAndAfters, 
  notifyParent
}

行:

 gracefulExit,
  handleBeforesAndAfters, 
  notifyParent

该语法是

的缩写吗?
  gracefulExit: any
  handleBeforesAndAfters: any
  notifyParent: any

1 个答案:

答案 0 :(得分:3)

是的。 TypeScript编译器具有一个选项,假定未类型化的变量应键入为core data。这是the noImplicitAny option,默认情况下为any

它的存在主要是为了简化从JavaScript(TypeScript是严格的父集,即false时所有有效的JavaAscript都是有效的TypeScript)的转换。

如果您在未开发区域或所有TypeScript项目中使用TypeScript,则应使用noImplicitAny == false以确保始终使用类型化的变量和字段。

请注意,在TypeScript中,如果接口成员具有noImplicitAny == true类型(无论是否隐式),则它与可选(any)成员不是同一回事。

...所以这些接口 是等效的:

undefined

...但是这些接口不等效:

interface Foo {
    a: any           // explicit `any` type
}
interface Bar {
    a                // implicit 'any' type
}