我真的不知道为什么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
undefined
在t1
和t3
上去了哪里(为什么)?!?
答案 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 | undefined
和t1
。参见TS Playground example。
在 VS Code 中,我必须启用t3
的{{1}}部分中的"strictNullChecks": true
才能显示正确的类型。