반응형
TypeScript에서 "이니셜라이저는 이 바인딩 요소에 값을 제공하지 않으며 바인딩 요소에 기본값이 없습니다"를 수정하는 방법은 무엇입니까?
JavaScript로 작성된 Apollo GraphQL API 프로젝트를 TypeScript로 마이그레이션하고 있습니다.사용자 코드 블록을 찾을 때 다음과 같은 오류가 발생합니다.
var idArg: any Initializer provides no value for this binding element and the binding element has no default value.ts(2525)
async findOne({ id: idArg } = {}) {
// Red line here ^^^^^
const user = await this.knex('users')
.where('id', idArg)
.first();
if (!user) return;
return user;
}
현재 추가했습니다.any
실제 솔루션을 제대로 알지 못한 상태에서 경고가 사라집니다.
async findOne({ id: idArg }: any = {}) {
const user = await this.knex('users')
.where('id', idArg)
.first();
if (!user) return;
return user;
}
하지만 저는 여전히 실제 해결책을 알고 싶습니다.추가할까요?number
대신 타이핑합니다.any
하지만 제가 그렇게 할 때, 오류는 다음과 같습니다.
Type '{}' is not assignable to type 'number'.ts(2322)
.
제발 도와주세요.
달성하고자 하는 목표에 따라 이 문제를 해결할 수 있는 방법은 여러 가지가 있습니다.
// The compiler checks the object { id: '1' } and it knows it has an id property
var { id } = { id: '1' }
/* The compiler is confused. It check the object {} and it knows it doesn't have
a property id1, so it is telling you it doesn't know where to get the value
for id1
*/
var { id1 } = {}
/* In this case the compiler knows the object doesn't have the property id2 but
since you provided a default value it uses it 'default value'.
*/
var { id2 = 'default value' } = {}
/* In your case there are a couple of solutions: */
// 1) Provide the value in the initializer
function findOne({ id: idArg } = { id: 'value here' }) {
console.log(id)
}
findOne()
// 2) Provide a default value
function findOne1({ id: idArg = 'value here 1' } = {}) {}
// 3) Provide initializer and type definition
function findOne2({ id: idArg}: { id?: number } = {}) {}
// 3) Do not provide initializer
function findOne3({ id: idArg}: { id: number }) {}
언급URL : https://stackoverflow.com/questions/57527710/how-to-fix-initializer-provides-no-value-for-this-binding-element-and-the-bindi
반응형
'programing' 카테고리의 다른 글
R 스크립트를 다른 스크립트에 포함(소스)하는 방법 (0) | 2023.06.15 |
---|---|
Vue 2.6.0으로 업그레이드할 때 "SyntaxError: invalid range in character class"가 표시되는 이유는 무엇입니까? (0) | 2023.06.15 |
__future__import absolute_import에서 실제로 수행하는 작업은 무엇입니까? (0) | 2023.06.15 |
TypeScript에서 router.navigate로 새 탭을 여는 방법 (0) | 2023.06.15 |
iOS - UITextField 외부에서 터치할 때 키보드 해제 (0) | 2023.06.15 |