Skip to content

Commit e9f0250

Browse files
authored
fix: handle TypeScript $$Generic special type (#131)
1 parent 8a34f9b commit e9f0250

File tree

4 files changed

+27
-0
lines changed

4 files changed

+27
-0
lines changed

src/postprocess.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -98,6 +98,7 @@ const is_valid_message = (block, message, translation) => {
9898
case 'no-labels': return get_identifier(get_referenced_string(block, message)) !== '$';
9999
case 'no-restricted-syntax': return message.nodeType !== 'LabeledStatement' || get_identifier(get_referenced_string(block, message)) !== '$';
100100
case 'no-self-assign': return !state.var_names.has(get_identifier(get_referenced_string(block, message)));
101+
case 'no-undef': return get_referenced_string(block, message) !== '$$Generic';
101102
case 'no-unused-labels': return get_referenced_string(block, message) !== '$';
102103
case '@typescript-eslint/quotes':
103104
case 'quotes': return !translation.options.in_quoted_attribute;
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
module.exports = {
2+
parser: '@typescript-eslint/parser',
3+
extends: ['plugin:@typescript-eslint/recommended'],
4+
plugins: ['@typescript-eslint'],
5+
settings: {
6+
'svelte3/typescript': require('typescript'),
7+
},
8+
rules: {
9+
'no-undef': 'error',
10+
},
11+
};
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
<script lang='ts'>
2+
type T = $$Generic;
3+
type U = $$Generic<string>;
4+
export let items: T[];
5+
export let message: U;
6+
</script>
7+
8+
{#each items as item}
9+
<slot {item} />
10+
{/each}
11+
12+
{#if message}
13+
{message}
14+
{/if}
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
[]

0 commit comments

Comments
 (0)