(node)
| 61885 | return indexType.flags & 131072 /* TypeFlags.Never */ ? stringType : indexType; |
| 61886 | } |
| 61887 | function getTypeFromTypeOperatorNode(node) { |
| 61888 | var links = getNodeLinks(node); |
| 61889 | if (!links.resolvedType) { |
| 61890 | switch (node.operator) { |
| 61891 | case 140 /* SyntaxKind.KeyOfKeyword */: |
| 61892 | links.resolvedType = getIndexType(getTypeFromTypeNode(node.type)); |
| 61893 | break; |
| 61894 | case 154 /* SyntaxKind.UniqueKeyword */: |
| 61895 | links.resolvedType = node.type.kind === 151 /* SyntaxKind.SymbolKeyword */ |
| 61896 | ? getESSymbolLikeTypeForNode(ts.walkUpParenthesizedTypes(node.parent)) |
| 61897 | : errorType; |
| 61898 | break; |
| 61899 | case 145 /* SyntaxKind.ReadonlyKeyword */: |
| 61900 | links.resolvedType = getTypeFromTypeNode(node.type); |
| 61901 | break; |
| 61902 | default: |
| 61903 | throw ts.Debug.assertNever(node.operator); |
| 61904 | } |
| 61905 | } |
| 61906 | return links.resolvedType; |
| 61907 | } |
| 61908 | function getTypeFromTemplateTypeNode(node) { |
| 61909 | var links = getNodeLinks(node); |
| 61910 | if (!links.resolvedType) { |
no test coverage detected
searching dependent graphs…