Merge pull request #4156 from Cryrivers/master
feat(typescript): support TSMinusToken and TSPlusTokenmaster
commit
4553b88bd4
|
@ -55,7 +55,7 @@
|
||||||
"resolve": "1.5.0",
|
"resolve": "1.5.0",
|
||||||
"semver": "5.4.1",
|
"semver": "5.4.1",
|
||||||
"string-width": "2.1.1",
|
"string-width": "2.1.1",
|
||||||
"typescript": "2.8.0-dev.20180222",
|
"typescript": "2.8.0-rc",
|
||||||
"typescript-eslint-parser": "14.0.0",
|
"typescript-eslint-parser": "14.0.0",
|
||||||
"unicode-regex": "1.0.1",
|
"unicode-regex": "1.0.1",
|
||||||
"unified": "6.1.6"
|
"unified": "6.1.6"
|
||||||
|
|
|
@ -303,6 +303,15 @@ function formatTernaryOperator(path, options, print, operatorOptions) {
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function getTypeScriptMappedTypeModifier(tokenNode, keyword) {
|
||||||
|
if (tokenNode.type === "TSPlusToken") {
|
||||||
|
return "+" + keyword;
|
||||||
|
} else if (tokenNode.type === "TSMinusToken") {
|
||||||
|
return "-" + keyword;
|
||||||
|
}
|
||||||
|
return keyword;
|
||||||
|
}
|
||||||
|
|
||||||
function printPathNoParens(path, options, print, args) {
|
function printPathNoParens(path, options, print, args) {
|
||||||
const n = path.getValue();
|
const n = path.getValue();
|
||||||
const semi = options.semi ? ";" : "";
|
const semi = options.semi ? ";" : "";
|
||||||
|
@ -2729,13 +2738,21 @@ function printPathNoParens(path, options, print, args) {
|
||||||
concat([
|
concat([
|
||||||
options.bracketSpacing ? line : softline,
|
options.bracketSpacing ? line : softline,
|
||||||
n.readonlyToken
|
n.readonlyToken
|
||||||
? concat([path.call(print, "readonlyToken"), " "])
|
? concat([
|
||||||
|
getTypeScriptMappedTypeModifier(
|
||||||
|
n.readonlyToken,
|
||||||
|
"readonly"
|
||||||
|
),
|
||||||
|
" "
|
||||||
|
])
|
||||||
: "",
|
: "",
|
||||||
printTypeScriptModifiers(path, options, print),
|
printTypeScriptModifiers(path, options, print),
|
||||||
"[",
|
"[",
|
||||||
path.call(print, "typeParameter"),
|
path.call(print, "typeParameter"),
|
||||||
"]",
|
"]",
|
||||||
n.questionToken ? "?" : "",
|
n.questionToken
|
||||||
|
? getTypeScriptMappedTypeModifier(n.questionToken, "?")
|
||||||
|
: "",
|
||||||
": ",
|
": ",
|
||||||
path.call(print, "typeAnnotation")
|
path.call(print, "typeAnnotation")
|
||||||
])
|
])
|
||||||
|
|
|
@ -1,5 +1,20 @@
|
||||||
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
||||||
|
|
||||||
|
exports[`minustoken.ts 1`] = `
|
||||||
|
type MutableRequired<T> = {
|
||||||
|
-readonly [P in keyof T]-?:T[P]
|
||||||
|
}; // Remove readonly and ?
|
||||||
|
|
||||||
|
type ReadonlyPartial<T> = {
|
||||||
|
+readonly [P in keyof T]+?:T[P]
|
||||||
|
}; // Add readonly and ?
|
||||||
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
type MutableRequired<T> = { -readonly [P in keyof T]-?: T[P] }; // Remove readonly and ?
|
||||||
|
|
||||||
|
type ReadonlyPartial<T> = { +readonly [P in keyof T]+?: T[P] }; // Add readonly and ?
|
||||||
|
|
||||||
|
`;
|
||||||
|
|
||||||
exports[`question.ts 1`] = `
|
exports[`question.ts 1`] = `
|
||||||
var x: {
|
var x: {
|
||||||
[A in keyof B]?: any;
|
[A in keyof B]?: any;
|
||||||
|
|
|
@ -0,0 +1,7 @@
|
||||||
|
type MutableRequired<T> = {
|
||||||
|
-readonly [P in keyof T]-?:T[P]
|
||||||
|
}; // Remove readonly and ?
|
||||||
|
|
||||||
|
type ReadonlyPartial<T> = {
|
||||||
|
+readonly [P in keyof T]+?:T[P]
|
||||||
|
}; // Add readonly and ?
|
|
@ -4784,9 +4784,9 @@ typescript-eslint-parser@14.0.0:
|
||||||
lodash.unescape "4.0.1"
|
lodash.unescape "4.0.1"
|
||||||
semver "5.5.0"
|
semver "5.5.0"
|
||||||
|
|
||||||
typescript@2.8.0-dev.20180222:
|
typescript@2.8.0-rc:
|
||||||
version "2.8.0-dev.20180222"
|
version "2.8.0-rc"
|
||||||
resolved "https://registry.yarnpkg.com/typescript/-/typescript-2.8.0-dev.20180222.tgz#50ee5fd5c76f2c9817e949803f946d74a559fc01"
|
resolved "https://registry.yarnpkg.com/typescript/-/typescript-2.8.0-rc.tgz#a0256b7d1d39fb7493ba0403f55e95d31e8bc374"
|
||||||
|
|
||||||
ua-parser-js@^0.7.9:
|
ua-parser-js@^0.7.9:
|
||||||
version "0.7.17"
|
version "0.7.17"
|
||||||
|
|
Loading…
Reference in New Issue