2017-08-18 89 views
-1

的多個錯誤我創建了一個asp.net核心下列類反應應用:上打字稿

import * as React from 'react'; 

    interface MyInputProps { 
     inputType: string; 
     id: string; 
     className: string; 
     parentFunction: (string) => void; 
    } 

    export class LoginInput extends React.Component<MyInputProps, {}> { 
     constructor() { 
      super(); 

      this.onChange = this.onChange.bind(this); 
     } 

     private onChange(e) { 
      this.props.parentFunction(e.target.value); 
     } 

     public render() { 
      return <input type={this.props.inputType} id={this.props.id} className={this.props.className} placeholder="username" onChange={this.onChange} />; 
     } 
    } 

現在,我得到了以下錯誤:

  • (TS)參數「弦」隱含地具有「任何」類型。
  • (TS)參數'e'隱式具有'任何'類型。

任何人都可以指出我在這裏做錯了什麼?

編輯

在另一個解決方案,我有以下類的正常工作:

import * as React from 'react'; 
    import axios from 'axios'; 
    import Country from './Country'; 
    import CountryModel from './models/CountryModel'; 

    const countriesUri = 'https://restcountries.eu/rest/v2/all?fields=name;alpha2Code'; 

    interface Props { 
     onChange: (string) => void; 
    } 

    interface State { 
     countries: CountryModel[]; 
    } 

    class CountryList extends React.Component<Props, State> { 
     constructor() { 
      super(); 

      this.state = { 
       countries: [] 
      }; 

      this.onChange = this.onChange.bind(this); 
     } 

     componentWillMount() { 
      this.getCountries(); 
     } 

     private getCountries() { 
      // 
     } 

     private onChange(e) { 
      this.props.onChange(e.target.value); 
     } 

     public render() { 
      return <select onChange={this.onChange} ref='countries'> 
       { 
        // 
       } 
      </select>; 
     } 
    } 

    export default CountryList; 

回答

1

你必須例如定義變量類型

interface MyInputProps { 
     parentFunction: (string:string) => void; 
    } 

    private onChange(e:any) { 
     this.props.parentFunction(e.target.value); 
    } 

錯誤消息基本上意味着,如果你不定義類型將隱式添加:any它。究其原因,檢查是在tsconfig.json

+0

編譯器選項noImplicitAny: true我的問題是,在另一種解決方案我: 接口道具{ 的onChange:(串)=>無效; } 它工作正常。也許這是我的配置有問題? –

+0

@ V.Vouvonikos是的,正如我所說的。你必須添加類型,例如'string:string' - 'variableName:variableType'。 –