首页 > 解决方案 > 如何在 TypeScript 中声明“{ message }”的类型?

问题描述

所以,我在学习打字稿,对此我有一个疑问:在类似的函数player.addListener('initialization_error', ({ message } ) => { console.error(message); });中,我如何声明 " {message}" 的类型?

var Spotify:any

    useEffect(() => {
        const script = document.createElement('script');
      
        script.src = "https://sdk.scdn.co/spotify-player.js";
        script.async = true;
      
        document.body.appendChild(script);
      
        return () => {
          document.body.removeChild(script);
        }
      }, []);

      (window as any).onSpotifyWebPlaybackSDKReady = () => {

        const token = '[My Spotify Web API access token]';
        const player = new Spotify.Player({
          name: 'Web Playback SDK Quick Start Player',
          getOAuthToken: (cb:any) => { cb(token); }
        });
      
        // Error handling
        player.addListener('initialization_error', ({ message } ) => { console.error(message); });
        player.addListener('authentication_error', ({ message }) => { console.error(message); });
        player.addListener('account_error', ({ message }) => { console.error(message); });
        player.addListener('playback_error', ({ message }) => { console.error(message); });
      
        // Playback status updates
        player.addListener('player_state_changed', (state:any) => { console.log(state); });
      
        // Ready
        player.addListener('ready', ({ device_id }) => {
          console.log('Ready with Device ID', device_id);
        });
      
        // Not Ready
        player.addListener('not_ready', ({ device_id }) => {
          console.log('Device ID has gone offline', device_id);
        });
      
        // Connect to the player!
        player.connect();
      };

整个代码是,我将 TypeScript 与 React 一起使用,TypeScript 发出关于隐式“任何”类型消息的警告。

在此处输入图像描述

标签: javascripttypescript

解决方案


您可以创建一个interface提供参数信息的

interface EventParams {
    readonly message: string;
}

const test: (params: EventParams) => void = ({ message }) => {
  console.log(message);
};

test({ message: "Hello world!" });

推荐阅读