μλ°μ€ν¬λ¦½νΈ Javascriptλ‘ μμ±λμ΄ λ Έλnodeλ‘ λμνλ μΉ μμ©νλ‘κ·Έλ¨μ νμ μ€ν¬λ¦½νΈ Typescriptλ‘ μ¬μμ±νκ³ μμ΅λλ€.
npm ν¨ν€μ§ μ€ λͺ¨λ μ μκ° μλ ν¨ν€μ§κ° μμ΅λλ€.
νμ μ€ν¬λ¦½νΈ μ½λλ₯Ό μμ±ν λ, μ μμ μΌλ‘ μ¬μ©ν μκ° μμ΅λλ€.
μ΄ λ, ν¨ν€μ§ μ μμμκ² λͺ¨λ μ μ νμΌμ μμ²νκ±°λ, μμ±μ€μΈ νλ‘μ νΈμ λͺ¨λ μ μ νμΌ .d.ts
νμΌμ μμ±ν΄μ λ¬Έμ λ₯Ό ν΄κ²°ν μ μμ΅λλ€.
μμ
μλ₯Ό λ€μ΄ showdown-xss-filter ν¨ν€μ§λ₯Ό μ¬μ©μ€μΈ μ½λκ° μμ΅λλ€.
const xssFilter = require('showdown-xss-filter');
νμ μ€ν¬λ¦½νΈλ‘ μμ±μ€μΈ μ½λμμ λͺ¨λμ μ μλ₯Ό μ°Ύμ μ μλ€κ³ ν©λλ€.
import xssFilter from 'showdown-xss-filter';
μλ¬ λ©μμ§:
Could not find a declaration file for module βshowdown-xss-filterβ. βd:/repos/blog-node-backend/node_modules/showdown-xss-filter/showdown-xss-filter.jsβ implicitly has an βanyβ type.\n Try
npm install @types/showdown-xss-filter
if it exists or add a new declaration (.d.ts) file containing `declare module βshowdown-xss-filterβ;
νμ μ€ν¬λ¦½νΈ μ»΄νμΌλ¬μ μ μμ μ°Έκ³ ν΄μ @types/showdown-xss-filter ν¨ν€μ§λ κ²μν΄λ κ²°κ³Όκ° μμ΅λλ€.
첫λ²μ§Έ μ μμΌλ‘ ν΄κ²°λμ§ μμΌλ, λλ²μ§Έλ‘ μ μνλ declare module 'showdown-xss-filter'
μ½λλ₯Ό ν¬ν¨νλ μ μ μ νμΌμ λ§λ€μ΄μΌ ν©λλ€.
ν¨μμ λͺ¨μμ νμΈνκΈ° μν΄ μ½λλ₯Ό 보λ, showdown-xss-filter ν¨ν€μ§μ λ΄μ©μ λ§€μ° κ°λ΅ν μ½λλ‘ μμ±λμ΄ μμ΅λλ€.
νμν κ²μ xssfilter
ν¨μμ μ μ μλ³μ Identifier
, μΈμλ€ Arguments
, λ°νν Return type
μ
λλ€.
μ½λλ₯Ό νμΈνκ³ , μλμ κ°μ΄ λͺ¨λμ μ μν μ μμ΅λλ€.
λ€νν showdonwμ λͺ¨λ μ μκ° μ‘΄μ¬ν©λλ€. β€
$ npm install --save-dev @types/showdown
// @types/showdown-xss-filter.d.ts
declare module 'showdown-xss-filter' {
import Showdown from 'showdown';
function xssFilter(
converter?: Showdown.Converter,
): Showdown.ShowdownExtension[];
export default xssFilter;
}
μμ±ν showdown-xss-filter.d.ts νμΌμ typeRoots λ‘ μ§μ λ λλ ν°λ¦¬μ μ μ₯ν©λλ€.
νμ μ€ν¬λ¦½νΈ νλ‘μ νΈ tsconfig.json νμΌμμ typeRoots μμ±μ μ¬μ©νμ§ μμΌλ©΄ rootDir λ‘ μ§μ ν λλ ν°λ¦¬μ
@types
λλ ν°λ¦¬λ₯Ό λ§λ€κ³ κ·Έ μμ μ μ₯νλ©΄ λ©λλ€.