You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
336 lines
9.8 KiB
336 lines
9.8 KiB
3 years ago
|
{{! Each type gets its own inline helper to determine how it is rendered. }}
|
||
|
{{! The name of the helper is the value of the 'type' property on the type.}}
|
||
|
|
||
|
{{!
|
||
|
The type helper accepts an optional needsParens parameter that is checked
|
||
|
if an inner type may result in invalid output without them. For example:
|
||
|
1 | 2[] !== (1 | 2)[]
|
||
|
() => 1 | 2 !== (() => 1) | 2
|
||
|
}}
|
||
|
|
||
|
{{#*inline 'array'}}
|
||
|
{{#with elementType}}
|
||
|
{{> type needsParens=true}}
|
||
|
<span class="tsd-signature-symbol">[]</span>
|
||
|
{{/with}}
|
||
|
{{/inline}}
|
||
|
|
||
|
{{#*inline 'conditional'}}
|
||
|
{{#if needsParens}}
|
||
|
<span class="tsd-signature-symbol">(</span>
|
||
|
{{/if}}
|
||
|
{{#with checkType}}
|
||
|
{{> type needsParens=true}}
|
||
|
{{/with}}
|
||
|
<span class="tsd-signature-symbol"> extends </span>
|
||
|
{{#with extendsType}}
|
||
|
{{> type}}
|
||
|
{{/with}}
|
||
|
<span class="tsd-signature-symbol"> ? </span>
|
||
|
{{#with trueType}}
|
||
|
{{> type}}
|
||
|
{{/with}}
|
||
|
<span class="tsd-signature-symbol"> : </span>
|
||
|
{{#with falseType}}
|
||
|
{{> type}}
|
||
|
{{/with}}
|
||
|
{{#if needsParens}}
|
||
|
<span class="tsd-signature-symbol">)</span>
|
||
|
{{/if}}
|
||
|
{{/inline}}
|
||
|
|
||
|
{{#*inline 'indexedAccess'}}
|
||
|
{{#with objectType}}
|
||
|
{{> type}}
|
||
|
{{/with}}
|
||
|
<span class="tsd-signature-symbol">[</span>
|
||
|
{{#with indexType}}
|
||
|
{{> type}}
|
||
|
{{/with}}
|
||
|
<span class="tsd-signature-symbol">]</span>
|
||
|
{{/inline}}
|
||
|
|
||
|
{{#*inline 'inferred'}}
|
||
|
<span class="tsd-signature-symbol">infer </span> {{name}}
|
||
|
{{/inline}}
|
||
|
|
||
|
{{#*inline 'intersection'}}
|
||
|
{{#if needsParens}}
|
||
|
<span class="tsd-signature-symbol">(</span>
|
||
|
{{/if}}
|
||
|
{{#each types}}
|
||
|
{{#unless @first}}
|
||
|
<span class="tsd-signature-symbol"> & </span>
|
||
|
{{/unless}}
|
||
|
{{> type needsParens=true}}
|
||
|
{{/each}}
|
||
|
{{#if needsParens}}
|
||
|
<span class="tsd-signature-symbol">)</span>
|
||
|
{{/if}}
|
||
|
{{/inline}}
|
||
|
|
||
|
{{#*inline 'intrinsic'}}
|
||
|
<span class="tsd-signature-type">{{name}}</span>
|
||
|
{{/inline}}
|
||
|
|
||
|
{{#*inline 'literal'}}
|
||
|
<span class="tsd-signature-type">{{stringify value}}</span>
|
||
|
{{/inline}}
|
||
|
|
||
|
{{#*inline 'mapped'}}
|
||
|
<span class="tsd-signature-symbol">{</span>
|
||
|
{{#ifCond readonlyModifier '===' '+'}}
|
||
|
<span class="tsd-signature-symbol">readonly </span>
|
||
|
{{else}}
|
||
|
{{#ifCond readonlyModifier '===' '-'}}
|
||
|
<span class="tsd-signature-symbol">-readonly </span>
|
||
|
{{/ifCond}}
|
||
|
{{/ifCond}}
|
||
|
|
||
|
<span class="tsd-signature-symbol">[ </span>
|
||
|
<span class="tsd-signature-type">{{parameter}}</span>
|
||
|
<span class="tsd-signature-symbol"> in </span>
|
||
|
|
||
|
{{#with parameterType}}
|
||
|
{{>type}}
|
||
|
{{/with}}
|
||
|
|
||
|
{{#with nameType}}
|
||
|
<span class="tsd-signature-symbol"> as </span>
|
||
|
{{>type}}
|
||
|
{{/with}}
|
||
|
|
||
|
<span class="tsd-signature-symbol">]</span>
|
||
|
{{#ifCond readonlyModifier '===' '+'}}
|
||
|
<span class="tsd-signature-symbol">?: </span>
|
||
|
{{else}}
|
||
|
{{#ifCond readonlyModifier '===' '-'}}
|
||
|
<span class="tsd-signature-symbol">-?: </span>
|
||
|
{{else}}
|
||
|
<span class="tsd-signature-symbol">: </span>
|
||
|
{{/ifCond}}
|
||
|
{{/ifCond}}
|
||
|
|
||
|
{{#with templateType}}
|
||
|
{{>type}}
|
||
|
{{/with}}
|
||
|
|
||
|
<span class="tsd-signature-symbol"> }</span>
|
||
|
{{/inline}}
|
||
|
|
||
|
{{#*inline 'optional'}}
|
||
|
{{#with elementType}}
|
||
|
{{> type}}
|
||
|
{{/with}}
|
||
|
<span class="tsd-signature-symbol">?</span>
|
||
|
{{/inline}}
|
||
|
|
||
|
{{#*inline 'predicate'}}
|
||
|
{{#if asserts}}
|
||
|
<span class="tsd-signature-symbol">asserts </span>
|
||
|
{{/if}}
|
||
|
<span class="tsd-signature-type">{{name}}</span>
|
||
|
{{#if targetType}}
|
||
|
<span class="tsd-signature-symbol"> is </span>
|
||
|
{{#with targetType}}
|
||
|
{{>type}}
|
||
|
{{/with}}
|
||
|
{{/if}}
|
||
|
{{/inline}}
|
||
|
|
||
|
{{#*inline 'query'}}
|
||
|
<span class="tsd-signature-symbol">typeof </span>
|
||
|
{{#with queryType}}
|
||
|
{{> type}}
|
||
|
{{/with}}
|
||
|
{{/inline}}
|
||
|
|
||
|
{{#*inline 'reference'}}
|
||
|
{{#with getReflection }}
|
||
|
<a href="{{relativeURL url}}" class="tsd-signature-type" data-tsd-kind="{{kindString}}">
|
||
|
{{name}}
|
||
|
</a>
|
||
|
{{else}}
|
||
|
<span class="tsd-signature-type">{{name}}</span>
|
||
|
{{/with}}
|
||
|
{{#if typeArguments}}
|
||
|
<span class="tsd-signature-symbol"><</span>
|
||
|
{{#each typeArguments}}
|
||
|
{{#unless @first}}
|
||
|
<span class="tsd-signature-symbol">, </span>
|
||
|
{{/unless}}
|
||
|
{{> type}}
|
||
|
{{/each}}
|
||
|
<span class="tsd-signature-symbol">></span>
|
||
|
{{/if}}
|
||
|
{{/inline}}
|
||
|
|
||
|
{{#*inline 'reflection'}}
|
||
|
{{#if declaration.children}} {{! object literal }}
|
||
|
<span class="tsd-signature-symbol">{ </span>
|
||
|
{{#each declaration.children}}
|
||
|
{{#unless @first}}
|
||
|
<span class="tsd-signature-symbol">; </span>
|
||
|
{{/unless}}
|
||
|
|
||
|
{{#if getSignature}}
|
||
|
{{#if setSignature}}
|
||
|
{{name}}
|
||
|
<span class="tsd-signature-symbol">: </span>
|
||
|
{{#with getSignature.type}}
|
||
|
{{> type}}
|
||
|
{{else}}
|
||
|
<span class="tsd-signature-type">any</span>
|
||
|
{{/with}}
|
||
|
{{else}}
|
||
|
<span class="tsd-signature-symbol">get </span>
|
||
|
{{name}}
|
||
|
<span class="tsd-signature-symbol">(): </span>
|
||
|
{{#with getSignature.type}}
|
||
|
{{> type}}
|
||
|
{{else}}
|
||
|
<span class="tsd-signature-type">any</span>
|
||
|
{{/with}}
|
||
|
{{/if}}
|
||
|
{{else}}
|
||
|
{{#if setSignature}}
|
||
|
<span class="tsd-signature-symbol">set </span>
|
||
|
{{name}}
|
||
|
<span class="tsd-signature-symbol">(</span>
|
||
|
{{! Rather hacky to use each here... but we know there is exactly one. }}
|
||
|
{{#each setSignature.parameters}}
|
||
|
{{name}}
|
||
|
<span class="tsd-signature-symbol">: </span>
|
||
|
{{#with type}}
|
||
|
{{> type}}
|
||
|
{{else}}
|
||
|
<span class="tsd-signature-type">any</span>
|
||
|
{{/with}}
|
||
|
{{/each}}
|
||
|
<span class="tsd-signature-symbol">)</span>
|
||
|
{{else}}
|
||
|
{{name}}
|
||
|
{{#if flags.isOptional }}
|
||
|
<span class="tsd-signature-symbol">?: </span>
|
||
|
{{else}}
|
||
|
<span class="tsd-signature-symbol">: </span>
|
||
|
{{/if}}
|
||
|
{{#with type}}
|
||
|
{{> type}}
|
||
|
{{else}}
|
||
|
<span class="tsd-signature-type">any</span>
|
||
|
{{/with}}
|
||
|
{{/if}}
|
||
|
{{/if}}
|
||
|
{{/each}}
|
||
|
<span class="tsd-signature-symbol"> }</span>
|
||
|
{{else if declaration.signatures}}
|
||
|
{{#if (lookup declaration.signatures 1) }} {{! more than one signature}}
|
||
|
<span class="tsd-signature-symbol">{ </span>
|
||
|
{{#each declaration.signatures}}
|
||
|
{{> member.signature.title hideName=true}}
|
||
|
{{#unless @last}}
|
||
|
<span class="tsd-signature-symbol">; </span>
|
||
|
{{/unless}}
|
||
|
{{/each}}
|
||
|
<span class="tsd-signature-symbol"> }</span>
|
||
|
{{else}}
|
||
|
{{#if needsParens}}
|
||
|
<span class="tsd-signature-symbol">(</span>
|
||
|
{{/if}}
|
||
|
{{#with (lookup declaration.signatures '0') }}
|
||
|
{{> member.signature.title hideName=true arrowStyle=true}}
|
||
|
{{/with}}
|
||
|
{{#if needsParens}}
|
||
|
<span class="tsd-signature-symbol">)</span>
|
||
|
{{/if}}
|
||
|
{{/if}}
|
||
|
{{else}}
|
||
|
<span class="tsd-signature-symbol">{}</span>
|
||
|
{{/if}}
|
||
|
{{/inline}}
|
||
|
|
||
|
{{#*inline 'rest'}}
|
||
|
<span class="tsd-signature-symbol">...</span>
|
||
|
{{#with elementType}}
|
||
|
{{> type}}
|
||
|
{{/with}}
|
||
|
{{/inline}}
|
||
|
|
||
|
{{#*inline 'tuple'}}
|
||
|
<span class="tsd-signature-symbol">[</span>
|
||
|
{{#each elements}}
|
||
|
{{#unless @first}}
|
||
|
<span class="tsd-signature-symbol">, </span>
|
||
|
{{/unless}}
|
||
|
{{> type}}
|
||
|
{{/each}}
|
||
|
<span class="tsd-signature-symbol">]</span>
|
||
|
{{/inline}}
|
||
|
|
||
|
{{#*inline 'template-literal'}}
|
||
|
<span class="tsd-signature-symbol">`</span>
|
||
|
{{#if head}}
|
||
|
<span class="tsd-signature-type">{{head}}</span>
|
||
|
{{/if}}
|
||
|
{{#each tail}}
|
||
|
<span class="tsd-signature-symbol">${</span>
|
||
|
{{#with this.[0]}}
|
||
|
{{>type}}
|
||
|
{{/with}}
|
||
|
<span class="tsd-signature-symbol">}</span>
|
||
|
{{#if this.[1]}}
|
||
|
<span class="tsd-signature-type">{{this.[1]}}</span>
|
||
|
{{/if}}
|
||
|
{{/each}}
|
||
|
<span class="tsd-signature-symbol">`</span>
|
||
|
{{/inline}}
|
||
|
|
||
|
{{#*inline 'typeOperator'}}
|
||
|
<span class="tsd-signature-symbol">{{operator}} </span>
|
||
|
{{#with target}}
|
||
|
{{> type}}
|
||
|
{{/with}}
|
||
|
{{/inline}}
|
||
|
|
||
|
{{#*inline 'typeParameter'}}
|
||
|
<span class="tsd-signature-type">{{name}}</span>
|
||
|
{{/inline}}
|
||
|
|
||
|
{{#*inline 'union'}}
|
||
|
{{#if needsParens}}
|
||
|
<span class="tsd-signature-symbol">(</span>
|
||
|
{{/if}}
|
||
|
{{#each types}}
|
||
|
{{#unless @first}}
|
||
|
<span class="tsd-signature-symbol"> | </span>
|
||
|
{{/unless}}
|
||
|
{{> type needsParens=true}}
|
||
|
{{/each}}
|
||
|
{{#if needsParens}}
|
||
|
<span class="tsd-signature-symbol">)</span>
|
||
|
{{/if}}
|
||
|
{{/inline}}
|
||
|
|
||
|
{{#*inline 'unknown'}}
|
||
|
<span class="tsd-signature-type">{{name}}</span>
|
||
|
{{/inline}}
|
||
|
|
||
|
{{#*inline 'named-tuple-member'}}
|
||
|
{{name}}
|
||
|
{{#if isOptional}}
|
||
|
<span class="tsd-signature-symbol">?: </span>
|
||
|
{{else}}
|
||
|
<span class="tsd-signature-symbol">: </span>
|
||
|
{{/if}}
|
||
|
{{#with element}}
|
||
|
{{> type}}
|
||
|
{{/with}}
|
||
|
{{/inline}}
|
||
|
|
||
|
{{#if this}}
|
||
|
{{> (lookup . 'type') }}
|
||
|
{{else}}
|
||
|
<span class="tsd-signature-type">void</span>
|
||
|
{{/if}}
|