1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82
|
//// [noImplicitSymbolToString.ts]
// Fix #19666
let symbol!: symbol;
let str = "hello ";
const templateStr = `hello ${symbol}`;
const appendStr = "hello " + symbol;
str += symbol;
let symbolUnionNumber!: symbol | number;
let symbolUnionString!: symbol | string;
const templateStrUnion = `union with number ${symbolUnionNumber} and union with string ${symbolUnionString}`;
// Fix #44462
type StringOrSymbol = string | symbol;
function getKey<S extends StringOrSymbol>(key: S) {
return `${key} is the key`;
}
function getKey1<S extends symbol>(key: S) {
let s1!: S;
`${s1}`;
s1 + '';
+s1;
let s2!: S | string;
`${s2}`;
s2 + '';
+s2;
}
function getKey2<S extends string>(key: S) {
let s1!: S;
`${s1}`;
s1 + '';
+s1;
let s2!: S | symbol;
`${s2}`;
s2 + '';
+s2;
}
//// [noImplicitSymbolToString.js]
// Fix #19666
var symbol;
var str = "hello ";
var templateStr = "hello ".concat(symbol);
var appendStr = "hello " + symbol;
str += symbol;
var symbolUnionNumber;
var symbolUnionString;
var templateStrUnion = "union with number ".concat(symbolUnionNumber, " and union with string ").concat(symbolUnionString);
function getKey(key) {
return "".concat(key, " is the key");
}
function getKey1(key) {
var s1;
"".concat(s1);
s1 + '';
+s1;
var s2;
"".concat(s2);
s2 + '';
+s2;
}
function getKey2(key) {
var s1;
"".concat(s1);
s1 + '';
+s1;
var s2;
"".concat(s2);
s2 + '';
+s2;
}
|