npm @types org 패키지의 TypeScript 타이핑


135

타이핑 패키지가 포함 된 npm organization @types가 있지만 그에 대한 문서를 찾을 수 없습니다. 이것들은 어떻게 사용됩니까?

타이핑 도구 와 함께 사용해야 합니까? 그렇다면 설치 방법은 무엇입니까? 예를 들어 @types/openlayers패키지가 있지만 typings search npm:openlayers아무것도 반환하지 않습니다.

타이핑 도구와 별도로 사용해야합니까? 예를 들어 npm?


11
이 질문에 감사드립니다.
레온 펠티에

답변:


109

TypeScript 2.0 부터는 더 이상 입력 할 필요가 없습니다. npm 조직은 개발자 팀을 구성하는 단체입니다. Microsoft가 @pms 조직을 npm에 설정하고 TypeScript 개발자 팀을 조직에 추가했다고 생각합니다. @types 조직 아래의 패키지는 docs에 따라 types-publisher 도구를 사용하여 DefinitelyTyped에서 자동으로 게시됩니다 .

또한 types패키지 에 추가 하는 또 다른 방법이 있습니다 .

package.json에서

패키지에 기본 .js파일 이있는 경우 파일에 기본 선언 파일도 표시해야합니다 package.json. types번들 선언 파일을 가리 키도록 특성을 설정 하십시오. 예를 들면 다음과 같습니다.

{
    "name": "awesome",
    "author": "Vandelay Industries",
    "version": "1.0.0",
    "main": "./lib/main.js",
    "types": "./lib/main.d.ts"
}

"typings"필드는의 동의어이며 "types"사용할 수도 있습니다.

또한 기본 선언 파일의 이름이 지정 index.d.ts되어 패키지 루트 (옆에 있음 index.js)에 있으면 "types"속성 을 표시하지 않아도 되지만 속성 을 표시하는 것이 좋습니다.

검색 유형에 대하여

대부분의 경우 유형 선언 패키지는 항상 npm의 패키지 이름과 이름이 같아야하지만 접두사가 @ types /이지만 필요한 경우 https://aka.ms/types 를 확인 하여 패키지를 찾을 수 있습니다. 가장 좋아하는 라이브러리.

에서-http: //www.typescriptlang.org/docs/handbook/declaration-files/consumption.html

그러나 내가했을 때 npm search @types/openlayers아무런 결과도 얻지 못했습니다. 그러나 웹 인터페이스에서 검색하면 결과가 반환되었습니다. 따라서 npm search여러 조직에서 검색하지 않는 것 같습니다 .


좋은 대답입니다! 약간의 편집은 훌륭하지만 현재 상태를 설명하는 데 훨씬 좋습니다.
Ronald Zarīts

속성 package.json아래에 단일 파일을 지정했기 때문에 번들 선언 파일types 에 대해 이야기하고 있습니다 . gulp와 같은 자동화 된 빌드 시스템에서이를 달성하는 가장 쉬운 방법은 무엇입니까?
Nicky

"main"main의 이름이 index.js 인 경우 필드 를 추가해야 합니까?
Knu

1
이 분야에 많은 감사의 "typings""types"
말씀

42

TypeScript 블로그에 대한 공지는 다음과 같이 답변합니다. 선언 파일의 미래

요약:

@typesNPM 조직과 형식 정의를 얻기위한 것입니다 npm. 이러한 유형 정의를 사용하는 기능은 TypeScript 2.0에서 제공됩니다.

이것은 타이핑tsd 와 같은 현재 프로젝트 / 도구를 대체 하지만 , 한동안 계속 지원됩니다.


1
론, 그래서 나는이 설정을 얻으려고 노력하고 있지만 VSCode가 내가 설치했다는 것을 깨닫지 못하는 것 같습니다. core-jsw / 와 같은 것을 사용한 후 npm i @types/core-js --save폴더에있는 것을 볼 수 있지만 프로젝트에서 여전히 오류가 발생합니다. 내가해야 할 다른 일이 있습니까? tsconfig가 @types 또는 무언가를 인식하도록해야합니까? Sean이 말했듯이, 유형에 대한 문서는 아직 없습니다 :(
Mark Pieszak-Trilon.io

@MarkPieszak VSCode가 TS2.0을 사용하고 있는지 확인해야합니다. TypeScript를 로컬로 설치하고 VSCode에서 사용하는 방법을 참조하십시오 : github.com/Microsoft/TypeScript/wiki/Nightly-drops
nino.porcino

아, 그래 그것은 그 것이었다 @ nino.porcino 당신이 :) 감사 tsdkTS의 설치 2.0beta A를 지적 할 필요가
마크 Pieszak - Trilon.io

적어도 우리가 업데이트하는 일부 팀 프로젝트 (및 우리가 본 다른 GH 프로젝트에서도)는 이러한 모듈 이름을 나열 tsconfig.json하는 "types"배열 속성으로 업데이트해야합니다."types": ["core-js"]
superjos

7

이것은 Typescript 2.0에서 제공되는 기능이 될 것입니다. UMD 모듈 / 라이브러리 및 해당 정의에 대한 유형 지원을 제공합니다.

현재 주변 입력과 관련된 문제를 더 잘 이해하려면 ( UMD 모듈 정의에 대한 기본 제공 지원)을 참조하십시오 .


감사합니다! 이것은 유용하지만 @types npm org를 논의하는 GitHub 문제는 보이지 않습니다. @types 조직이 UMD /// <reference시나리오를 위한 것 입니까? TypeScript 컴파일러는 아래 node_modules/@types에서 모듈을 찾을 node_modules때 유형을 자동으로 찾 'moduleResolution': 'node'습니까? 이것이 의미하는 바 typings-주변 종속성도 처리합니다. 어떤 식 으로든 관련이 있습니까?
Ronald Zarīts
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.