2fecc132ab
From spec: Note that type guards affect types of variables and parameters only and have no effect on members of objects such as properties
67 lines
2.5 KiB
TypeScript
67 lines
2.5 KiB
TypeScript
// Note that type guards affect types of variables and parameters only and
|
|
// have no effect on members of objects such as properties.
|
|
|
|
// variables in global
|
|
var num: number;
|
|
var var1: string | number;
|
|
class C1 {
|
|
constructor(param: string | number) {
|
|
// global vars in function declaration
|
|
num = typeof var1 === "string" && var1.length; // string
|
|
|
|
// variables in function declaration
|
|
var var2: string | number;
|
|
num = typeof var2 === "string" && var2.length; // string
|
|
|
|
// parameters in function declaration
|
|
num = typeof param === "string" && param.length; // string
|
|
}
|
|
// Inside function declaration
|
|
private p1(param: string | number) {
|
|
// global vars in function declaration
|
|
num = typeof var1 === "string" && var1.length; // string
|
|
|
|
// variables in function declaration
|
|
var var2: string | number;
|
|
num = typeof var2 === "string" && var2.length; // string
|
|
|
|
// parameters in function declaration
|
|
num = typeof param === "string" && param.length; // string
|
|
}
|
|
// Inside function declaration
|
|
p2(param: string | number) {
|
|
// global vars in function declaration
|
|
num = typeof var1 === "string" && var1.length; // string
|
|
|
|
// variables in function declaration
|
|
var var2: string | number;
|
|
num = typeof var2 === "string" && var2.length; // string
|
|
|
|
// parameters in function declaration
|
|
num = typeof param === "string" && param.length; // string
|
|
}
|
|
// Inside function declaration
|
|
private static s1(param: string | number) {
|
|
// global vars in function declaration
|
|
num = typeof var1 === "string" && var1.length; // string
|
|
|
|
// variables in function declaration
|
|
var var2: string | number;
|
|
num = typeof var2 === "string" && var2.length; // string
|
|
|
|
// parameters in function declaration
|
|
num = typeof param === "string" && param.length; // string
|
|
}
|
|
// Inside function declaration
|
|
static s2(param: string | number) {
|
|
// global vars in function declaration
|
|
num = typeof var1 === "string" && var1.length; // string
|
|
|
|
// variables in function declaration
|
|
var var2: string | number;
|
|
num = typeof var2 === "string" && var2.length; // string
|
|
|
|
// parameters in function declaration
|
|
num = typeof param === "string" && param.length; // string
|
|
}
|
|
}
|