Skip to content

Commit 780f251

Browse files
committed
Merge pull request #8650 from Microsoft/unescape-dunder-string-literal-types
Unescape string literal types starting with double underscore.
2 parents c62b6cb + a5585c5 commit 780f251

File tree

4 files changed

+28
-1
lines changed

4 files changed

+28
-1
lines changed

src/compiler/checker.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5150,7 +5150,7 @@ namespace ts {
51505150
function getTypeFromStringLiteralTypeNode(node: StringLiteralTypeNode): Type {
51515151
const links = getNodeLinks(node);
51525152
if (!links.resolvedType) {
5153-
links.resolvedType = getStringLiteralTypeForText(node.text);
5153+
links.resolvedType = getStringLiteralTypeForText(unescapeIdentifier(node.text));
51545154
}
51555155
return links.resolvedType;
51565156
}
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
tests/cases/compiler/doubleUnderStringLiteralAssignability.ts(2,5): error TS2322: Type '"no_dunder"' is not assignable to type '"__dunder"'.
2+
3+
4+
==== tests/cases/compiler/doubleUnderStringLiteralAssignability.ts (1 errors) ====
5+
var shouldBeOk: '__dunder' = '__dunder';
6+
var bad: '__dunder' = 'no_dunder';
7+
~~~
8+
!!! error TS2322: Type '"no_dunder"' is not assignable to type '"__dunder"'.
9+
var okok: '___thunder' = '___thunder';
10+
var alsoOk: '_sunder' = '_sunder';
11+
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
//// [doubleUnderStringLiteralAssignability.ts]
2+
var shouldBeOk: '__dunder' = '__dunder';
3+
var bad: '__dunder' = 'no_dunder';
4+
var okok: '___thunder' = '___thunder';
5+
var alsoOk: '_sunder' = '_sunder';
6+
7+
8+
//// [doubleUnderStringLiteralAssignability.js]
9+
var shouldBeOk = '__dunder';
10+
var bad = 'no_dunder';
11+
var okok = '___thunder';
12+
var alsoOk = '_sunder';
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
var shouldBeOk: '__dunder' = '__dunder';
2+
var bad: '__dunder' = 'no_dunder';
3+
var okok: '___thunder' = '___thunder';
4+
var alsoOk: '_sunder' = '_sunder';

0 commit comments

Comments
 (0)