Sweetalert: μœ ν˜• 였λ₯˜ TS2403: 후속 λ³€μˆ˜ μ„ μ–Έμ˜ μœ ν˜•μ΄ 동일해야 ν•©λ‹ˆλ‹€.

에 λ§Œλ“  2019λ…„ 01μ›” 25일  Β·  22μ½”λ©˜νŠΈ  Β·  좜처: t4t5/sweetalert

TypeScript 3.2.4κ°€ ν¬ν•¨λœ Angular 7둜 μ—…κ·Έλ ˆμ΄λ“œλ˜μ—ˆμœΌλ©° 이제 μ»΄νŒŒμΌν•  λ•Œλ§ˆλ‹€ λ‹€μŒμ΄ ν‘œμ‹œλ©λ‹ˆλ‹€.

import swal from 'sweetalert';

swal({ ... });

node_modules/sweetalert/typings/sweetalert.d.ts(4,9) 였λ₯˜: 였λ₯˜ TS2403: 후속 λ³€μˆ˜ 선언은 λ™μΌν•œ μœ ν˜•μ΄μ–΄μ•Ό ν•©λ‹ˆλ‹€. λ³€μˆ˜ 'swal'은 'typeof import("C:/Projects/me/browser/node_modules/sweetalert/typings/sweetalert")' μœ ν˜•μ΄μ–΄μ•Ό ν•˜μ§€λ§Œ μ—¬κΈ°μ—λŠ” 'SweetAlert' μœ ν˜•μ΄ μžˆμŠ΅λ‹ˆλ‹€.

node_modules/sweetalert/typings/sweetalert.d.ts λ₯Ό νŽΈμ§‘ν•˜λ©΄...

import swal, { SweetAlert } from "./core";

declare global {
  const swal: SweetAlert;
  const sweetAlert: SweetAlert;
}

export default swal;
export as namespace swal;

... μ—κ²Œ ...

import swal, { SweetAlert } from "./core";

export default swal;
export as namespace swal;

... μž‘λ™μ„ μ‹œμž‘ν•©λ‹ˆλ‹€.

μ–΄λ–€ 아이디어?

κ°€μž₯ μœ μš©ν•œ λŒ“κΈ€

μ•ˆλ…•ν•˜μ„Έμš” μ—¬λŸ¬λΆ„,

μžμ‹ μ˜ λ…Έλ ₯을 μ ˆμ•½ν•˜κ³  sweetalert 2 https://sweetalert2.github.io/λ₯Ό μ‚¬μš©

λͺ¨λ“  22 λŒ“κΈ€

같은 문제, 같은 상황.

κ·ΈλŸ¬λ‚˜ export as namespace swal; 라인을 주석 μ²˜λ¦¬ν•˜λŠ” κ²ƒλ§ŒμœΌλ‘œλ„ 컴파일이 κ°€λŠ₯ν•˜λ‹€λŠ” 것을 μ•Œμ•˜μŠ΅λ‹ˆλ‹€. λ‚˜λŠ” μ–΄λ–€ λ‹¨μ„œμ— λŒ€ν•œ TypeScript λ³€κ²½ 둜그λ₯Όλ³΄κ³ μžˆμ—ˆμŠ΅λ‹ˆλ‹€ ...

같은 문제, 같은 상황.

κ·ΈλŸ¬λ‚˜ export as namespace swal; 라인을 주석 μ²˜λ¦¬ν•˜λŠ” κ²ƒλ§ŒμœΌλ‘œλ„ 컴파일이 κ°€λŠ₯ν•˜λ‹€λŠ” 것을 μ•Œμ•˜μŠ΅λ‹ˆλ‹€. λ‚˜λŠ” μ–΄λ–€ λ‹¨μ„œμ— λŒ€ν•œ TypeScript λ³€κ²½ 둜그λ₯Όλ³΄κ³ μžˆμ—ˆμŠ΅λ‹ˆλ‹€ ...

같은 문제
λ‚˜λŠ”μ΄ μ†”λ£¨μ…˜μ„ μ‚¬μš©
ν•˜μ§€λ§Œ 이 μ†”λ£¨μ…˜μ΄ μ˜³μ§€ μ•Šλ‹€κ³  μƒκ°ν•©λ‹ˆλ‹€.

같은 λ¬Έμ œμž…λ‹ˆλ‹€.

λ˜ν•œ λ™μΌν•œ λ¬Έμ œμž…λ‹ˆλ‹€. 이 λ•Œλ¬Έμ— CI λΉŒλ“œκ°€ μ‹€νŒ¨ν•©λ‹ˆλ‹€.

OpenBSDμ—μ„œ μ‹€ν–‰ν•  λ•Œλ„ 이와 λ™μΌν•œ λ¬Έμ œκ°€ μžˆμŠ΅λ‹ˆλ‹€. 예, μ£Όλ₯˜ OSλŠ” λͺ¨λ₯΄μ§€λ§Œ μ‚¬μš© κ°€λŠ₯ν•œ TypeScript 버전은 sweetalertκ°€ μžˆλŠ” λͺ¨λ“  것을 μ‚¬μš©ν•  수 μ—†κ²Œ λ§Œλ“­λ‹ˆλ‹€.

OpenBSDμ—μ„œ μ‹€ν–‰ν•  λ•Œλ„ 이와 λ™μΌν•œ λ¬Έμ œκ°€ μžˆμŠ΅λ‹ˆλ‹€. 예, μ£Όλ₯˜ OSλŠ” λͺ¨λ₯΄μ§€λ§Œ μ‚¬μš© κ°€λŠ₯ν•œ TypeScript 버전은 sweetalertκ°€ μžˆλŠ” λͺ¨λ“  것을 μ‚¬μš©ν•  수 μ—†κ²Œ λ§Œλ“­λ‹ˆλ‹€.

@t4t5 이 문제 μ’€

Angular 7μ—μ„œλ„ 이것을 κ²½ν—˜ν•©λ‹ˆλ‹€.

μ •μ˜ νŒŒμΌμ„ μˆ˜λ™μœΌλ‘œ νŽΈμ§‘ν•˜λŠ” 것 외에 ν•΄κ²° 방법에 λŒ€ν•œ 아이디어가 μžˆμŠ΅λ‹ˆκΉŒ? λͺ¨λ“  clone / npm μ„€μΉ˜ 후에 그것을 κΈ°μ–΅ν•˜λŠ” 것은 μ•½κ°„μ˜ λ²ˆκ±°λ‘œμ›€μ΄ 되고 μžˆμŠ΅λ‹ˆλ‹€.

@bogdan-calapod λ‹€μŒμ€ CI λΉŒλ“œκ°€ μ‹€νŒ¨ν•˜μ§€ μ•Šλ„λ‘ ν•΄κ²° λ°©λ²•μœΌλ‘œ μˆ˜ν–‰ν•œ μž‘μ—…μž…λ‹ˆλ‹€.

  1. μ—¬κΈ°μ—μ„œ Sweetalert μΆ•μ†Œ 슀크립트 νŒŒμΌμ„ λ‹€μš΄λ‘œλ“œ sweetalert.min.js ).
  2. μž₯μ†Œ sweetalert.min.js μ—μ„œ src/assets/scripts 각도 μ‘μš© ν”„λ‘œκ·Έλž¨μ—μ„œ.
  3. src/assets/scripts/sweetalert.min.js scripts ν•­λͺ©μ— angular.json
  4. Sweetalertλ₯Ό μ‚¬μš©ν•˜λ €λŠ” ꡬ성 μš”μ†Œ/μ„œλΉ„μŠ€μ—μ„œ 클래슀 μ„ μ–Έ μœ„μ— declare var swal: any; μΆ”κ°€ν•˜μ‹­μ‹œμ˜€.
  5. μ „μ—­ λ³€μˆ˜ swal , 즉 return swal({...}) μ‚¬μš©ν•˜μ—¬ 파일의 μ–΄λ””μ—μ„œλ‚˜ Sweetalertλ₯Ό μ‚¬μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
  6. 둜컬 슀크립트 파일 npm uninstall sweetalert --save μ‚¬μš©ν•˜κ³  μžˆμœΌλ―€λ‘œ 이제 Sweetalert NPM νŒ¨ν‚€μ§€λ₯Ό μ œκ±°ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

μ•ˆλ…•ν•˜μ„Έμš” μ—¬λŸ¬λΆ„,

μžμ‹ μ˜ λ…Έλ ₯을 μ ˆμ•½ν•˜κ³  sweetalert 2 https://sweetalert2.github.io/λ₯Ό μ‚¬μš©

이 λ¬Έμ œμ— λŒ€ν•œ μ—…λ°μ΄νŠΈκ°€ μžˆμŠ΅λ‹ˆκΉŒ?

μ•ˆλ…•ν•˜μ„Έμš” μ—¬λŸ¬λΆ„,

μžμ‹ μ˜ λ…Έλ ₯을 μ ˆμ•½ν•˜κ³  sweetalert 2 https://sweetalert2.github.io/λ₯Ό μ‚¬μš©

이것은 3개 μ΄μƒμ˜ λ²„νŠΌμ„ μ§€μ›ν•©λ‹ˆκΉŒ?

@DVGalarza 이 ν•΄κ²° 방법은 μ €μ—κ²Œ νš¨κ³Όκ°€ μ—†μ—ˆμŠ΅λ‹ˆλ‹€. ReferenceError: "swal이 μ •μ˜λ˜μ§€ μ•Šμ•˜μŠ΅λ‹ˆλ‹€"κ°€ λ‚΄κ°€ μ–»λŠ” κ²ƒμž…λ‹ˆλ‹€.

@alvarofelipe12 'swal'을 μ‚¬μš©ν•˜λ €λŠ” νŒŒμΌμ—μ„œ 파일 상단(μž„ν¬νŠΈ μ•„λž˜)에 declare var swal: any; λ₯Ό μΆ”κ°€ν•˜μ…¨λ‚˜μš”? 이 경우,도 확인 sweetalert.min.js 의 '슀크립트'μ„Ήμ…˜μ—μ„œ μ œλŒ€λ‘œ μ°Έμ‘° angular.json .

TypeScript 3.2.4κ°€ ν¬ν•¨λœ Angular 7둜 μ—…κ·Έλ ˆμ΄λ“œλ˜μ—ˆμœΌλ©° 이제 μ»΄νŒŒμΌν•  λ•Œλ§ˆλ‹€ λ‹€μŒμ΄ ν‘œμ‹œλ©λ‹ˆλ‹€.

import swal from 'sweetalert';

swal({ ... });

node_modules/sweetalert/typings/sweetalert.d.ts(4,9) 였λ₯˜: 였λ₯˜ TS2403: 후속 λ³€μˆ˜ 선언은 λ™μΌν•œ μœ ν˜•μ΄μ–΄μ•Ό ν•©λ‹ˆλ‹€. λ³€μˆ˜ 'swal'은 'typeof import("C:/Projects/me/browser/node_modules/sweetalert/typings/sweetalert")' μœ ν˜•μ΄μ–΄μ•Ό ν•˜μ§€λ§Œ μ—¬κΈ°μ—λŠ” 'SweetAlert' μœ ν˜•μ΄ μžˆμŠ΅λ‹ˆλ‹€.

node_modules/sweetalert/typings/sweetalert.d.ts λ₯Ό νŽΈμ§‘ν•˜λ©΄...

import swal, { SweetAlert } from "./core";

declare global {
  const swal: SweetAlert;
  const sweetAlert: SweetAlert;
}

export default swal;
export as namespace swal;

... μ—κ²Œ ...

import swal, { SweetAlert } from "./core";

export default swal;
export as namespace swal;

... μž‘λ™μ„ μ‹œμž‘ν•©λ‹ˆλ‹€.

μ–΄λ–€ 아이디어?

λ‚΄ λŒ€μ•ˆμ€ const swal의 이름을 const _swal둜 λ°”κΎΈλŠ” 것이 μ—ˆμŠ΅λ‹ˆλ‹€.

"./core"μ—μ„œ swal, { SweetAlert } κ°€μ Έμ˜€κΈ°;

μ „μ—­ μ„ μ–Έ {
const _swal: SweetAlert;
const sweetAlert: SweetAlert;
}

κΈ°λ³Έ swal 내보내기;
λ„€μž„μŠ€νŽ˜μ΄μŠ€ swal둜 내보내기;

μ•ˆλ…•ν•˜μ„Έμš”!, 같은 문제

sweetalert μœ ν˜•μ„ μž¬μ •μ˜ν•˜μ—¬ 이 문제λ₯Ό ν•΄κ²°ν–ˆμŠ΅λ‹ˆλ‹€. src/node_modules/sweetalert/index.d.ts λΌλŠ” src 디렉토리에 νŒŒμΌμ„ μΆ”κ°€ν–ˆμŠ΅λ‹ˆλ‹€.

//this file is needed because the sweetalert typings need to be overwritten because they are broken
//the real fix here is to stop using sweetalert

declare global {
  const _swal: any;
  const sweetAlert: any;
}

export default _swal;
export as namespace swal;

이 쀄을 λ³€κ²½ν•˜μ—¬ ν•΄κ²°ν–ˆμŠ΅λ‹ˆλ‹€.

import swal from 'sweetalert';

μ—κ²Œ:

const swal = require('sweetalert');

λ˜λŠ” (μΈν„°νŽ˜μ΄μŠ€ μ‚¬μš©):

import { SweetAlert } from 'sweetalert/typings/core';
const swal: SweetAlert = require('sweetalert');

Angular 10μ—μ„œ λ™μΌν•œ λ¬Έμ œκ°€ λ°œμƒν–ˆμŠ΅λ‹ˆλ‹€. 예, λ¬Έμ œλŠ” λ‚΄ IDE에 λ”°λ₯΄λ©΄ sweetalert.d.ts 에 μžˆλŠ” 것 κ°™μŠ΅λ‹ˆλ‹€. 였λ₯˜κ°€ μžˆμœΌλ―€λ‘œ 이에 λŒ€ν•΄ μ–ΈκΈ‰ν•˜λŠ” 것이 λ‚˜μœ 해결책은 μ•„λ‹ˆλΌκ³  μƒκ°ν•©λ‹ˆλ‹€.

image

@drmencos Node.jsμš©μΈκ°€μš”? require λŠ” Angular 10μ—μ„œ μž‘λ™ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

νŒŒμΌμ—μ„œ: node_modules> sweetalert> typings> sweetalert.d.ts
주석: const swal: SweetAlert;

"./core"μ—μ„œ swal, {SweetAlert} κ°€μ Έμ˜€κΈ°;

μ „μ—­ μ„ μ–Έ {
// const swal: SweetAlert;
const sweetAlert: SweetAlert;
}

κΈ°λ³Έ swal 내보내기;
λ„€μž„μŠ€νŽ˜μ΄μŠ€ swal둜 내보내기;

import 'sweetalert' 을 require('sweetalert') ν•˜λ©΄ μ €μ—κ²Œ νš¨κ³Όμ μ΄μ—ˆμŠ΅λ‹ˆλ‹€.

이 νŽ˜μ΄μ§€κ°€ 도움이 λ˜μ—ˆλ‚˜μš”?
0 / 5 - 0 λ“±κΈ‰