P粉2855875902023-09-05 12:01:48
{}
和 String
都是对象类型,而 string
和 '1'
都是原始类型。你可以将 void
속성을 추가하여 개체 유형이 교차하므로 개체 유형과 교차합니다.
반대로, 기본 유형은 가능한 값 집합을 줄여서 교차합니다.
으아악그리고 기본 유형을 객체 유형과 교차함으로써 기본 유형에 새로운 속성을 추가할 수 있습니다.
으아악그러나 기본 유형은 다른 기본 유형이 될 수 없습니다. 따라서 두 개의 서로 다른 기본 유형을 교차하면 never
마지막으로 void
는 원시형입니다.
즉, 이는 void & { foo: number }
가 기본 유형 void & { foo: number }
意味着原始类型 void
也将具有属性 foo
에도 foo
속성이 있다는 의미입니다.
그러나 void & string
은 두 가지 기본 유형이 다르기 때문에 void & string
将产生 never
를 생성합니다.
그러나 void & String
은 String
이 객체 유형이기 때문에 ( new String() <을 통해)
String
의 속성을 void & String
是 void
加上 String
的属性,因为 String
是一个对象类型(通过 new String()
더한 것입니다. /code> 생성됨).
그러나 이 중 어느 것도 의미가 없습니다. 정의되지 않음
이외의 항목을 void
分配除了 undefined
之外的任何东西,而 undefined
不能有属性。所以我认为在你的代码库中 void & Type
할당할 수 없으며, 정의되지 않음
은 속성을 가질 수 없습니다. 그래서 저는 void & Type
이 코드베이스에 존재할 이유가 없다고 생각합니다. 필요하다고 생각되면 왜 필요한지 묻고 필요하지 않도록 코드를 리팩터링해 보겠습니다.