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 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144
|
=== /tests/cases/fourslash/completionDetailsOfContextSensitiveParameterNoCrash.ts ===
// type __ = never;
//
// interface CurriedFunction1<T1, R> {
// (): CurriedFunction1<T1, R>;
// (t1: T1): R;
// }
// interface CurriedFunction2<T1, T2, R> {
// (): CurriedFunction2<T1, T2, R>;
// (t1: T1): CurriedFunction1<T2, R>;
// (t1: __, t2: T2): CurriedFunction1<T1, R>;
// (t1: T1, t2: T2): R;
// }
//
// interface CurriedFunction3<T1, T2, T3, R> {
// (): CurriedFunction3<T1, T2, T3, R>;
// (t1: T1): CurriedFunction2<T2, T3, R>;
// (t1: __, t2: T2): CurriedFunction2<T1, T3, R>;
// (t1: T1, t2: T2): CurriedFunction1<T3, R>;
// (t1: __, t2: __, t3: T3): CurriedFunction2<T1, T2, R>;
// (t1: T1, t2: __, t3: T3): CurriedFunction1<T2, R>;
// (t1: __, t2: T2, t3: T3): CurriedFunction1<T1, R>;
// (t1: T1, t2: T2, t3: T3): R;
// }
//
// interface CurriedFunction4<T1, T2, T3, T4, R> {
// (): CurriedFunction4<T1, T2, T3, T4, R>;
// (t1: T1): CurriedFunction3<T2, T3, T4, R>;
// (t1: __, t2: T2): CurriedFunction3<T1, T3, T4, R>;
// (t1: T1, t2: T2): CurriedFunction2<T3, T4, R>;
// (t1: __, t2: __, t3: T3): CurriedFunction3<T1, T2, T4, R>;
// (t1: __, t2: __, t3: T3): CurriedFunction2<T2, T4, R>;
// (t1: __, t2: T2, t3: T3): CurriedFunction2<T1, T4, R>;
// (t1: T1, t2: T2, t3: T3): CurriedFunction1<T4, R>;
// (t1: __, t2: __, t3: __, t4: T4): CurriedFunction3<T1, T2, T3, R>;
// (t1: T1, t2: __, t3: __, t4: T4): CurriedFunction2<T2, T3, R>;
// (t1: __, t2: T2, t3: __, t4: T4): CurriedFunction2<T1, T3, R>;
// (t1: __, t2: __, t3: T3, t4: T4): CurriedFunction2<T1, T2, R>;
// (t1: T1, t2: T2, t3: __, t4: T4): CurriedFunction1<T3, R>;
// (t1: T1, t2: __, t3: T3, t4: T4): CurriedFunction1<T2, R>;
// (t1: __, t2: T2, t3: T3, t4: T4): CurriedFunction1<T1, R>;
// (t1: T1, t2: T2, t3: T3, t4: T4): R;
// }
//
// declare var curry: {
// <T1, R>(func: (t1: T1) => R, arity?: number): CurriedFunction1<T1, R>;
// <T1, T2, R>(func: (t1: T1, t2: T2) => R, arity?: number): CurriedFunction2<T1, T2, R>;
// <T1, T2, T3, R>(func: (t1: T1, t2: T2, t3: T3) => R, arity?: number): CurriedFunction3<T1, T2, T3, R>;
// <T1, T2, T3, T4, R>(func: (t1: T1, t2: T2, t3: T3, t4: T4) => R, arity?: number): CurriedFunction4<T1, T2, T3, T4, R>;
// (func: (...args: any[]) => any, arity?: number): (...args: any[]) => any;
// placeholder: __;
// };
//
// export type StylingFunction = (
// keys: (string | false | undefined) | (string | false | undefined)[],
// ...rest: unknown[]
// ) => object;
//
// declare const getStylingByKeys: (
// mergedStyling: object,
// keys: (string | false | undefined) | (string | false | undefined)[],
// ...args: unknown[]
// ) => object;
//
// declare var mergedStyling: object;
//
// export const createStyling: CurriedFunction3<
// (base16Theme: object) => unknown,
// object | undefined,
// object | undefined,
// StylingFunction
// > = curry<
// (base16Theme: object) => unknown,
// object | undefined,
// object | undefined,
// StylingFunction
// >(
// (
// getStylingFromBase16: (base16Theme: object) => unknown,
// options: object = {},
// themeOrStyling: object = {},
// ...args
// ): StylingFunction => {
// return curry(getStylingByKeys, 2)(mergedStyling, ...args);
// ^^^^
// | ----------------------------------------------------------------------
// | (parameter) args: any
// | ----------------------------------------------------------------------
// },
// 3
// );
[
{
"marker": {
"fileName": "/tests/cases/fourslash/completionDetailsOfContextSensitiveParameterNoCrash.ts",
"position": 3101,
"name": ""
},
"item": {
"kind": "parameter",
"kindModifiers": "",
"textSpan": {
"start": 3101,
"length": 4
},
"displayParts": [
{
"text": "(",
"kind": "punctuation"
},
{
"text": "parameter",
"kind": "text"
},
{
"text": ")",
"kind": "punctuation"
},
{
"text": " ",
"kind": "space"
},
{
"text": "args",
"kind": "parameterName"
},
{
"text": ":",
"kind": "punctuation"
},
{
"text": " ",
"kind": "space"
},
{
"text": "any",
"kind": "keyword"
}
],
"documentation": []
}
}
]
|