GN⁺: TypeScript 런타임 유형을 제공해 주세요.
(github.com/akutruff)- TypeScript 사용자들은 런타임 타입 정보를 생성할 수 있는 기능을 요청하고 있습니다.
- 런타임 타입 정보의 부재로 인해 직렬화와 유효성 검사가 과도한 보일러플레이트 코드나 코드 생성 없이 어렵습니다.
- io-ts와 zod와 같은 기존 솔루션은 모든 사용 사례에 충분하지 않습니다.
- TypeScript 사용자들은 직렬화 문제를 해결하고 가이드를 제공하거나 라이브러리를 추천하는 TypeScript 팀의 우선 순위를 촉구하고 있습니다.
- TypeScript의 설계 목표와 런타임 타입 정보의 필요 사이에 충돌이 있는 것으로 보입니다.
- 사용자들은 인터페이스를 사용하는 것을 선호하기 때문에 이 문제를 데코레이터로 해결하고 싶어하지 않습니다.
- F# Type Providers나 C# Source Generators와 유사한 고차 함수나 기능은 환영받을 것입니다.
- 작성자는 TypeScript 팀이 이 문제를 해결한다면, 가능하면 TypeScript 4.3에서, 케이크와 아이스크림을 보내겠다고 약속합니다.
Hacker News 의견
- TypeScript에서 reflection/runtime 유형에 대한 요청에 대한 논의
- 일부 댓글 작성자들은 기사의 문제 제기가 명확하지 않고 서투르다고 생각합니다.
- TypeScript의 역할은 JavaScript로 컴파일하는 것이며, 런타임 유형 안전성을 제공하지 않습니다.
- TypeScript 프로젝트는 강력한 유형 주석과 런타임 유형 유효성 검사 로직을 구축하기 위해 노력합니다.
- 일부 댓글 작성자들은 TypeScript에 런타임 유형 검사를 추가하는 것에 반대하며, 이는 JavaScript 위에 새로운 언어를 만들게 될 것이라고 주장합니다.
- JavaScript에서 런타임 유형 유효성 검사를 위한 기존 라이브러리가 있으며, 요청은 규범적인 선택을 만드는 것입니다.
- 일부 댓글 작성자들은 런타임 유형 검사를 위해 타입 가드나 외부 라이브러리를 사용하는 것을 선호합니다.
- TypeScript의 설계 목표는 열거형을 제외하고 JavaScript와 런타임 의미론이 동일하도록 하는 것입니다.
- TypeScript 주변 생태계는 완전한 유형 소거에 의존하고 있으며, 런타임 유형을 추가하기 위해서는 기존 도구에 상당한 변경이 필요합니다.
- 일부 댓글 작성자들은 다른 정적 타입 언어와 비교했을 때 TypeScript의 제한에 대해 불만을 표명합니다.
- 한 명의 댓글 작성자는 TypeScript 유형의 자동 직렬화 및 역직렬화를 요청하는 것은 라이브러리로 구현될 수 있다고 제안합니다.