Fix optional-chaining with TS non-null operator (#10961)

This commit is contained in:
Bruno Macabeus 2020-05-24 21:56:31 +01:00 committed by GitHub
parent 6ba1f0dd22
commit 75a6530abe
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
10 changed files with 69 additions and 0 deletions

View File

@ -44,6 +44,11 @@ export default declare((api, options) => {
optionalPath.node.type = "CallExpression";
optionalPath = optionalPath.get("callee");
}
// unwrap a TSNonNullExpression if need
if (optionalPath.isTSNonNullExpression()) {
optionalPath = optionalPath.get("expression");
}
}
let replacementPath = path;

View File

@ -0,0 +1,8 @@
a?.b!.c;
a?.b!.c.d;
a?.b.c!.d;
a!.b?.c;
a?.b!?.c;
a?.b!.c?.c;
(a?.b!).c;
(a?.b)!.c;

View File

@ -0,0 +1,6 @@
{
"plugins": [
"proposal-optional-chaining",
"syntax-typescript"
]
}

View File

@ -0,0 +1,10 @@
var _a, _a2, _a3, _b, _a4, _ref, _a5, _c, _a6, _a7;
(_a = a) === null || _a === void 0 ? void 0 : _a.b!.c;
(_a2 = a) === null || _a2 === void 0 ? void 0 : _a2.b!.c.d;
(_a3 = a) === null || _a3 === void 0 ? void 0 : _a3.b.c!.d;
(_b = a!.b) === null || _b === void 0 ? void 0 : _b.c;
(_a4 = a) === null || _a4 === void 0 ? void 0 : (_ref = _a4.b!) === null || _ref === void 0 ? void 0 : _ref.c;
(_a5 = a) === null || _a5 === void 0 ? void 0 : (_c = _a5.b!.c) === null || _c === void 0 ? void 0 : _c.c;
((_a6 = a) === null || _a6 === void 0 ? void 0 : _a6.b)!.c;
((_a7 = a) === null || _a7 === void 0 ? void 0 : _a7.b)!.c;

View File

@ -0,0 +1,8 @@
a?.b!.c;
a?.b!.c.d;
a?.b.c!.d;
a!.b?.c;
a?.b!?.c;
a?.b!.c?.c;
(a?.b!).c;
(a?.b)!.c;

View File

@ -0,0 +1,3 @@
{
"plugins": ["proposal-optional-chaining", "transform-typescript"]
}

View File

@ -0,0 +1,10 @@
var _a, _a2, _a3, _b, _a4, _ref, _a5, _c, _a6, _a7;
(_a = a) === null || _a === void 0 ? void 0 : _a.b.c;
(_a2 = a) === null || _a2 === void 0 ? void 0 : _a2.b.c.d;
(_a3 = a) === null || _a3 === void 0 ? void 0 : _a3.b.c.d;
(_b = a.b) === null || _b === void 0 ? void 0 : _b.c;
(_a4 = a) === null || _a4 === void 0 ? void 0 : (_ref = _a4.b) === null || _ref === void 0 ? void 0 : _ref.c;
(_a5 = a) === null || _a5 === void 0 ? void 0 : (_c = _a5.b.c) === null || _c === void 0 ? void 0 : _c.c;
((_a6 = a) === null || _a6 === void 0 ? void 0 : _a6.b).c;
((_a7 = a) === null || _a7 === void 0 ? void 0 : _a7.b).c;

View File

@ -0,0 +1,8 @@
a?.b!.c;
a?.b!.c.d;
a?.b.c!.d;
a!.b?.c;
a?.b!?.c;
a?.b!.c?.c;
(a?.b!).c;
(a?.b)!.c;

View File

@ -0,0 +1,3 @@
{
"plugins": ["transform-typescript"]
}

View File

@ -0,0 +1,8 @@
a?.b.c;
a?.b.c.d;
a?.b.c.d;
a.b?.c;
a?.b?.c;
a?.b.c?.c;
(a?.b).c;
(a?.b).c;