Skip to content
On this page

2022-09-28

Title
2022-09-28
Category
2022
Tags
Aliases
2022-09-28
Created
last year
Updated
last year

TODO

  • tailwindcss-line-clamp 설치
  • 패키지의 node 버전 / packageManager 명시하기
  • vue-demi를 사용한 vue2 / vue3 동시 지원

Learning

Vue 3 + TypeScript #vue #typescript

TypeScript의 --preserveValueImports

타입스크립트가 import를 사용하고 있는지를 감지하지 못하는 몇 가지 케이스가 있다.

js
import {Animal} from './animal.js';

eval('console.log(new Animal().isDangerous())');
import {Animal} from './animal.js';

eval('console.log(new Animal().isDangerous())');

기본적으로 타입스크립트는 항상 사용하지 않는 것처럼 보이는 import문을 제거한다.

TypeScript 4.5부터는 --preserveValueImports 플래그를 지원한다. 이는 모든 imported values를 타입스크립트가 제거하지 못하도록 막는다.

이는 Svelte와 Vue에서 다음과 같이 자주 나타난다.

svelte
<!-- A .svelte File -->
<script>
import { someFunc } from "./some-module.js";
</script>

<button on:click={someFunc}>Click me!</button>
<!-- A .svelte File -->
<script>
import { someFunc } from "./some-module.js";
</script>

<button on:click={someFunc}>Click me!</button>
vue
<!-- A .vue File -->
<script setup>
import {someFunc} from './some-module.js';
</script>

<button @click="someFunc">Click me!</button>
<!-- A .vue File -->
<script setup>
import {someFunc} from './some-module.js';
</script>

<button @click="someFunc">Click me!</button>

Vite + Vue3 Component Library

Reading

Released under the MIT License.