打字稿:undefined从接口中剥离

时间:2020-02-20 15:15:32

标签: typescript interface undefined

我真的不知道为什么undefined消失了:

export interface IPayloads {
  Test1: number | undefined;
  Test2: number | void;
  Test3?: number;
}

type t1 = IPayloads["Test1"];  // number
type t2 = IPayloads["Test2"];  // number | void
type t3 = IPayloads["Test3"];  // number

undefinedt1t3上去了哪里(为什么)?!?

1 个答案:

答案 0 :(得分:0)

我刚刚在TS Playground中签到,它报告两种类型的正确类型均为src/main/java ├── UserInterface │ └── ... (java files) ├── Application │ ├── OneUseCase.java │ ├── AnotherUseCase.java │ └── YetAnotherUseCase.java ├── Domain │ ├── SubDomain1 │ │ └── ... (java files) │ ├── SubDomain2 │ │ └── ... (java files) │ ├── SubDomain3 │ │ └── ... (java files) │ └── SubDomain3 │ └── ... (java files) └── Infrastructure ├── database │ └── ... (java files) ├── logging │ └── ... (java files) └── httpclient └── ... (java files) number | undefinedt1。参见TS Playground example

VS Code 中,我必须启用t3的{​​{1}}部分中的"strictNullChecks": true才能显示正确的类型。