Skip to content

Commit f4ddf83

Browse files
ajaffftypescript-bot
authored andcommitted
Cherry-pick PR microsoft#34954 into release-3.7
Component commits: 84ebe22 strip QuestionToken from MethodDeclartion emit Fixes: microsoft#34953 5269071 test property emit
1 parent 93b1aa3 commit f4ddf83

File tree

5 files changed

+34
-2
lines changed

5 files changed

+34
-2
lines changed

src/compiler/binder.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3639,7 +3639,8 @@ namespace ts {
36393639
|| hasModifier(node, ModifierFlags.TypeScriptModifier)
36403640
|| node.typeParameters
36413641
|| node.type
3642-
|| !node.body) {
3642+
|| !node.body
3643+
|| node.questionToken) {
36433644
transformFlags |= TransformFlags.AssertTypeScript;
36443645
}
36453646

@@ -3686,7 +3687,7 @@ namespace ts {
36863687
let transformFlags = subtreeFlags | TransformFlags.ContainsClassFields;
36873688

36883689
// Decorators, TypeScript-specific modifiers, and type annotations are TypeScript syntax.
3689-
if (some(node.decorators) || hasModifier(node, ModifierFlags.TypeScriptModifier) || node.type) {
3690+
if (some(node.decorators) || hasModifier(node, ModifierFlags.TypeScriptModifier) || node.type || node.questionToken) {
36903691
transformFlags |= TransformFlags.AssertTypeScript;
36913692
}
36923693

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
//// [optionalMethod.ts]
2+
class Base {
3+
method?() { }
4+
}
5+
6+
7+
//// [optionalMethod.js]
8+
class Base {
9+
method() { }
10+
}
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
//// [optionalProperty.ts]
2+
class C {
3+
prop?;
4+
}
5+
6+
7+
//// [optionalProperty.js]
8+
class C {
9+
prop;
10+
}
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
// @target: esnext
2+
// @noTypesAndSymbols: true
3+
class Base {
4+
method?() { }
5+
}
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
// @target: esnext
2+
// @useDefineForClassFields: true
3+
// @noTypesAndSymbols: true
4+
class C {
5+
prop?;
6+
}

0 commit comments

Comments
 (0)