ae582a22ee
* Add `target: "es2022"`
* Add Object.hasOwn
* formatToParts is es2018
* ref update
* optional parameter
* Revert "optional parameter"
This reverts commit e67d6e5f60
.
* undefined
* error cause
* Lint fix
Co-authored-by: Orta <git@orta.io>
116 lines
6.4 KiB
Plaintext
116 lines
6.4 KiB
Plaintext
=== tests/cases/compiler/typeGuardConstructorPrimitiveTypes.ts ===
|
|
// Narrow a union of primitive types
|
|
let var1: string | number | boolean | any[] | symbol | bigint;
|
|
>var1 : Symbol(var1, Decl(typeGuardConstructorPrimitiveTypes.ts, 1, 3))
|
|
|
|
if (var1.constructor === String) {
|
|
>var1.constructor : Symbol(Object.constructor, Decl(lib.es5.d.ts, --, --))
|
|
>var1 : Symbol(var1, Decl(typeGuardConstructorPrimitiveTypes.ts, 1, 3))
|
|
>constructor : Symbol(Object.constructor, Decl(lib.es5.d.ts, --, --))
|
|
>String : Symbol(String, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.core.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --) ... and 6 more)
|
|
|
|
var1; // string
|
|
>var1 : Symbol(var1, Decl(typeGuardConstructorPrimitiveTypes.ts, 1, 3))
|
|
}
|
|
if (var1.constructor === Number) {
|
|
>var1.constructor : Symbol(Object.constructor, Decl(lib.es5.d.ts, --, --))
|
|
>var1 : Symbol(var1, Decl(typeGuardConstructorPrimitiveTypes.ts, 1, 3))
|
|
>constructor : Symbol(Object.constructor, Decl(lib.es5.d.ts, --, --))
|
|
>Number : Symbol(Number, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --))
|
|
|
|
var1; // number
|
|
>var1 : Symbol(var1, Decl(typeGuardConstructorPrimitiveTypes.ts, 1, 3))
|
|
}
|
|
if (var1.constructor === Boolean) {
|
|
>var1.constructor : Symbol(Object.constructor, Decl(lib.es5.d.ts, --, --))
|
|
>var1 : Symbol(var1, Decl(typeGuardConstructorPrimitiveTypes.ts, 1, 3))
|
|
>constructor : Symbol(Object.constructor, Decl(lib.es5.d.ts, --, --))
|
|
>Boolean : Symbol(Boolean, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --))
|
|
|
|
var1; // boolean
|
|
>var1 : Symbol(var1, Decl(typeGuardConstructorPrimitiveTypes.ts, 1, 3))
|
|
}
|
|
if (var1.constructor === Array) {
|
|
>var1.constructor : Symbol(Object.constructor, Decl(lib.es5.d.ts, --, --))
|
|
>var1 : Symbol(var1, Decl(typeGuardConstructorPrimitiveTypes.ts, 1, 3))
|
|
>constructor : Symbol(Object.constructor, Decl(lib.es5.d.ts, --, --))
|
|
>Array : Symbol(Array, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.core.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --) ... and 3 more)
|
|
|
|
var1; // any[]
|
|
>var1 : Symbol(var1, Decl(typeGuardConstructorPrimitiveTypes.ts, 1, 3))
|
|
}
|
|
if (var1.constructor === Symbol) {
|
|
>var1.constructor : Symbol(Object.constructor, Decl(lib.es5.d.ts, --, --))
|
|
>var1 : Symbol(var1, Decl(typeGuardConstructorPrimitiveTypes.ts, 1, 3))
|
|
>constructor : Symbol(Object.constructor, Decl(lib.es5.d.ts, --, --))
|
|
>Symbol : Symbol(Symbol, Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.symbol.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --), Decl(lib.es2019.symbol.d.ts, --, --))
|
|
|
|
var1; // symbol
|
|
>var1 : Symbol(var1, Decl(typeGuardConstructorPrimitiveTypes.ts, 1, 3))
|
|
}
|
|
if (var1.constructor === BigInt) {
|
|
>var1.constructor : Symbol(Object.constructor, Decl(lib.es5.d.ts, --, --))
|
|
>var1 : Symbol(var1, Decl(typeGuardConstructorPrimitiveTypes.ts, 1, 3))
|
|
>constructor : Symbol(Object.constructor, Decl(lib.es5.d.ts, --, --))
|
|
>BigInt : Symbol(BigInt, Decl(lib.es2020.bigint.d.ts, --, --), Decl(lib.es2020.bigint.d.ts, --, --))
|
|
|
|
var1; // bigint
|
|
>var1 : Symbol(var1, Decl(typeGuardConstructorPrimitiveTypes.ts, 1, 3))
|
|
}
|
|
|
|
// Narrow a union of primitive object types
|
|
let var2: String | Number | Boolean | Symbol | BigInt;
|
|
>var2 : Symbol(var2, Decl(typeGuardConstructorPrimitiveTypes.ts, 22, 3))
|
|
>String : Symbol(String, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.core.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --) ... and 6 more)
|
|
>Number : Symbol(Number, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --))
|
|
>Boolean : Symbol(Boolean, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --))
|
|
>Symbol : Symbol(Symbol, Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.symbol.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --), Decl(lib.es2019.symbol.d.ts, --, --))
|
|
>BigInt : Symbol(BigInt, Decl(lib.es2020.bigint.d.ts, --, --), Decl(lib.es2020.bigint.d.ts, --, --))
|
|
|
|
if (var2.constructor === String) {
|
|
>var2.constructor : Symbol(Object.constructor, Decl(lib.es5.d.ts, --, --))
|
|
>var2 : Symbol(var2, Decl(typeGuardConstructorPrimitiveTypes.ts, 22, 3))
|
|
>constructor : Symbol(Object.constructor, Decl(lib.es5.d.ts, --, --))
|
|
>String : Symbol(String, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.core.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --) ... and 6 more)
|
|
|
|
var2; // String
|
|
>var2 : Symbol(var2, Decl(typeGuardConstructorPrimitiveTypes.ts, 22, 3))
|
|
}
|
|
if (var2.constructor === Number) {
|
|
>var2.constructor : Symbol(Object.constructor, Decl(lib.es5.d.ts, --, --))
|
|
>var2 : Symbol(var2, Decl(typeGuardConstructorPrimitiveTypes.ts, 22, 3))
|
|
>constructor : Symbol(Object.constructor, Decl(lib.es5.d.ts, --, --))
|
|
>Number : Symbol(Number, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --))
|
|
|
|
var2; // Number
|
|
>var2 : Symbol(var2, Decl(typeGuardConstructorPrimitiveTypes.ts, 22, 3))
|
|
}
|
|
if (var2.constructor === Boolean) {
|
|
>var2.constructor : Symbol(Object.constructor, Decl(lib.es5.d.ts, --, --))
|
|
>var2 : Symbol(var2, Decl(typeGuardConstructorPrimitiveTypes.ts, 22, 3))
|
|
>constructor : Symbol(Object.constructor, Decl(lib.es5.d.ts, --, --))
|
|
>Boolean : Symbol(Boolean, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --))
|
|
|
|
var2; // Boolean
|
|
>var2 : Symbol(var2, Decl(typeGuardConstructorPrimitiveTypes.ts, 22, 3))
|
|
}
|
|
if (var2.constructor === Symbol) {
|
|
>var2.constructor : Symbol(Object.constructor, Decl(lib.es5.d.ts, --, --))
|
|
>var2 : Symbol(var2, Decl(typeGuardConstructorPrimitiveTypes.ts, 22, 3))
|
|
>constructor : Symbol(Object.constructor, Decl(lib.es5.d.ts, --, --))
|
|
>Symbol : Symbol(Symbol, Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.symbol.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --), Decl(lib.es2019.symbol.d.ts, --, --))
|
|
|
|
var2; // Symbol
|
|
>var2 : Symbol(var2, Decl(typeGuardConstructorPrimitiveTypes.ts, 22, 3))
|
|
}
|
|
if (var2.constructor === BigInt) {
|
|
>var2.constructor : Symbol(Object.constructor, Decl(lib.es5.d.ts, --, --))
|
|
>var2 : Symbol(var2, Decl(typeGuardConstructorPrimitiveTypes.ts, 22, 3))
|
|
>constructor : Symbol(Object.constructor, Decl(lib.es5.d.ts, --, --))
|
|
>BigInt : Symbol(BigInt, Decl(lib.es2020.bigint.d.ts, --, --), Decl(lib.es2020.bigint.d.ts, --, --))
|
|
|
|
var2; // BigInt
|
|
>var2 : Symbol(var2, Decl(typeGuardConstructorPrimitiveTypes.ts, 22, 3))
|
|
}
|
|
|